#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//int main() {
//	FILE* pf = fopen("text.txt", "r");
//	if (pf == NULL) {
//		perror("fopen");
//		return 1;
//	}
//	/*fputc('a', pf);
//	fputs("bcdef", pf);*/
//	char arr[10] = { 0 };
//	fgets(arr, 3, pf);
//	printf("%s", arr);
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}
//void main(void)
//{
//    FILE* stream;
//    char line[100];
//
//    if ((stream = fopen("fgets.c", "w")) != NULL)
//    {
//        if (fgets(line, 1, stream) == NULL)
//            printf("fgets error\n");
//        else
//            printf("%s", line);
//        fclose(stream);
//    }
//}
//
//int main() {
//	FILE* pf2 = fopen("add.txt", "w");
//
//	if (pf2 == NULL) {
//		perror("fopen");
//		return 1;
//	}
//	fputs("asdf", pf2);
//	char arr[10] = { 0 };
//	/*fgets("arr", 4, pf2);*/
//	fclose(pf2);
//	FILE* pf1 = fopen("add.txt", "r");
//	if (pf1 == NULL) {
//		perror("fopen");
//		return 1;
//	}
//	fgets(arr, 4, pf1);
//	printf("%s", arr);
//
//	return 0;
//}

////int main() {
////	FILE* pf1 = fopen("add.txt", "w+");
////	if (pf1 == NULL) {
////		perror("fopen");
////		return 1;
////	}
////	int a = 12;
////	char b = 'b';
////	//fscanf(pf1, "%d %c", &a, &b);
////	fscanf(pf1,"%d %c", &a, &b);
////	fclose(pf1);
////	return 0;
//////}
//
//int main() {
//	char ch = 0;
//	char arr[26] = { 0 };
//	while ((ch = getchar()) != '\n') {
//		if (islower(ch))
//			ch = toupper(ch);
//		printf("%c", ch);
//		if(isalpha(ch))
//		arr[ch - 65]++;
//		
//	}
//	printf("\n");
//	int max = 0;
//	int j = 0;
//	for (int i = 0; i < 26; i++) {
//		if (max < arr[i])
//		{
//			max = arr[i];
//			j = i;
//		}
//	}
////	printf("%c:%d", j + 65, max);
////	return 0;
////}
//char* my_strstr(char* str1, char* str2) {
//	if (*str2 == '\0')
//		return str1;
//	char* p1 = str1;
//	char* p2 = str2;
//	while (*p1!='\0') {
//		while (*p1 == *p2 && *p1 != '\0') {
//			p1++;
//			p2++;
//		}
//		if (*p2 == '\0')
//			return str1;
//		str1++;
//		p1 = str1;
//		p2 = str2;
//}
//	return NULL;
//}
//int main() {
//	char arr1[] = "asdffgghhjkl";
//	char arr2[] = "fgh";
//	char* ret = my_strstr(arr1, arr2);
//	printf("%s", ret);
//	return 0;
//}

//int main() {
//	int* p1 = (int*)malloc(40);
//	int* p2 = (int*)calloc(10, 4);
//	int* p3 = (int*)realloc(p1, 80);
//	if (p3 == NULL) {
//		perror("realloc");
//			return 1;
//	}
//	p1 = p3;
//	free(p1);
//	p1 = NULL;
//
//	return 0;
//}
//void find_one_num(int* arr, int sz) {
//	int* ret = (int*)calloc(sz,sizeof(int));
//	if (ret == NULL) {
//		perror("calloc");
//		return;
//	}
//	ret[0] = 1;
//	int flag = 0;
//	for (int i = 1; i < sz; i++) {
//		flag = 0;
//		for (int j = 0; j < i; j++) {
//			if (arr[j] == arr[i]) {
//				ret[j]++;
//				flag = 1;
//				break;
//			}
//			
//
//		}
//		if (flag == 0) {
//			ret[i] = 1;
//		}
//	}
//	for (int i = 0; i < sz; i++) {
//		if (ret[i] == 1) {
//			printf("%d ", arr[i]);
//		}
//	}
//	
//}
//
//int main() {
//	int arr[] = { 1,1,5,6,8,9,9,8,6,5,4,7 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	find_one_num(arr,sz);
//	return 0;
//}
#include<assert.h>
//char* my_strncpy(char* dest, const char* src, int sz) {
//	assert(dest && src);
//	char* ret = dest;
//	while (sz&&*src) {
//		sz--;
//		*dest++ = *src++;
//	}
//	*dest = '\0';
//	if (sz != 0) {
//		while (sz--) {
//			*dest++ = '\0';
//		}
//	}
//	return ret;
//}
//int main() {
//	char arr1[] = "abcdef";
//	char arr2[10] = "**********";
//	char*tmp=my_strncpy(arr2, arr1,5);
//	printf("%s", tmp);
//	return 0;
//}

//char* my_strncat(char* dest, const char* src, size_t sz) {
//	assert(dest && src);
//	char* ret = dest;
//	while (*dest) {
//		dest++;
//	}
//	while (sz && *src) {
//		sz--;
//		*dest++ = *src++;
//	}
//	*dest = '\0';
//	return ret;
//}
//int main() {
//	char arr1[20] = "abcdefg";
//	char arr2[10] = "hijklmn";
//	char*tmp=my_strncat(arr1, arr2, 5);
//	printf("%s", tmp);
//	return 0;
//}

//#include<stdlib.h>
//int main() {
//	char* arr = "   ada456sfa";
//	int ret = atoi(arr);
//	printf("%d", ret);
//	return 0;
//}
#include <stdio.h>
#include <stdlib.h>
//#include<ctype.h>
//#include<math.h>
//int my_atoi(const char* str) {
//    assert(str);
//    int flag = 0;
//    while (isspace(*str)) {
//        str++;
//    }
//    if (*str == '-') {
//        str++;
//        flag = 1;
//    }
//    if (*str == '+') {
//        str++;
//    }
//    char* tmp = str;
//    while ((*str) >= '0' && (*str) <= '9') {
//        str++;
//    }
//    int ret = str - tmp;
//    int sum = 0;
//    while (ret) {
//        ret--;
//        sum +=((int)pow(10, ret) * (*tmp - '0'));
//        tmp++;
//
//    }
//    if (flag == 1) {
//        sum = -sum;
//    }
//    return sum;
//}
//int main()
//{
//    char* ptr1 = "-12345.12";
//    char* ptr2 = "+1234w34";
//    char* ptr3 = "   456er12";
//    char* ptr4 = "789 123";
//    int a, b, c, d;
//
//    a = my_atoi(ptr1);
//    b = my_atoi(ptr2);
//    c = my_atoi(ptr3);
//    d = my_atoi(ptr4);
//
//    printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
//
//    return 0;
//}
